import axios from "axios";

// 创建axios实例，在这里可以设置请求的默认配置
const instance = axios.create({
  timeout: 10000, // 设置超时时间10s，如果10秒没有返回结果则中断请求，认为连接超时
  baseURL: "http://localhost:8080", // 根据自己配置的代理去设置不同环境的baseUrl
});

/** 添加请求拦截器 **/
instance.interceptors.request.use(
  (config) => {
    return config;
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

/** 添加响应拦截器  **/
instance.interceptors.response.use(
  (response) => {
    if (response.status === 200) {
      return Promise.resolve(response.data);
    } else {
      return Promise.reject(response.statusText);
    }
  },
  (error) => {
    // 请求报错的回调可以和后端协调返回什么状态码，在此根据对应状态码进行对应处理
    if (error.response) {
      // 比如返回报错你的页面可能会崩溃，你需要在它崩溃之前做一些操作的话，可以在这里
      return Promise.reject(error);
    } else {
      return Promise.reject("请求超时, 请刷新重试");
    }
  }
);

export default instance;
